package com.guptarulie.jmeter.protocol.mm7.submitvasmm;

import org.apache.jmeter.testbeans.BeanInfoSupport;
import org.apache.jmeter.testbeans.gui.FileEditor;

import java.beans.PropertyDescriptor;

/**
 *User: Mat Rule
 *User: Gaurav Gupta
 *Date: Jan 2009
 */
public class MM7VasMMSubmitSamplerBeanInfo extends BeanInfoSupport {
    public MM7VasMMSubmitSamplerBeanInfo() {
        super(MM7VasMMSubmitSampler.class);

        createPropertyGroup("mmsc_details", new String[]{"mm7ServerName","mm7PortNumber", "mm7User", "mm7Pass", "mm7VaspId", "mm7TimeOut"});

		PropertyDescriptor sNPropDes = property("mm7ServerName");
        sNPropDes.setValue(NOT_UNDEFINED, Boolean.TRUE);
        sNPropDes.setValue(DEFAULT, "");
        sNPropDes.setValue(NOT_EXPRESSION, Boolean.TRUE);
        
		PropertyDescriptor pNPropDes = property("mm7PortNumber");
		pNPropDes.setValue(NOT_UNDEFINED, Boolean.TRUE);
		pNPropDes.setValue(DEFAULT, "");
		pNPropDes.setValue(NOT_EXPRESSION, Boolean.TRUE);

		PropertyDescriptor uNPropDes = property("mm7User");
        uNPropDes.setValue(NOT_UNDEFINED, Boolean.TRUE);
        uNPropDes.setValue(DEFAULT, "");
        uNPropDes.setValue(NOT_EXPRESSION, Boolean.TRUE);
        
		PropertyDescriptor pWPropDes = property("mm7Pass");
		pWPropDes.setValue(NOT_UNDEFINED, Boolean.TRUE);
		pWPropDes.setValue(DEFAULT, "");
		pWPropDes.setValue(NOT_EXPRESSION, Boolean.TRUE);

		PropertyDescriptor vIPropDes = property("mm7VaspId");
		vIPropDes.setValue(NOT_UNDEFINED, Boolean.TRUE);
		vIPropDes.setValue(DEFAULT, "");
		vIPropDes.setValue(NOT_EXPRESSION, Boolean.TRUE);
		
		PropertyDescriptor tOPropDes = property("mm7TimeOut");
		tOPropDes.setValue(NOT_UNDEFINED, Boolean.TRUE);
		tOPropDes.setValue(DEFAULT, "1000");
		tOPropDes.setValue(NOT_EXPRESSION, Boolean.TRUE);
		
		createPropertyGroup("mm7_content", new String[]{"mm7ToNumber", "mm7DeliveryOn", "mm7MsgContent", "mm7MsgContentCust"});

        PropertyDescriptor tonPropDes = property("mm7ToNumber");
        tonPropDes.setValue(NOT_UNDEFINED, Boolean.TRUE);
        tonPropDes.setValue(DEFAULT, "");
        tonPropDes.setValue(NOT_EXPRESSION, Boolean.TRUE);
        
        PropertyDescriptor mCPropDes = property("mm7MsgContent");
        mCPropDes.setValue(NOT_UNDEFINED, Boolean.TRUE);
        mCPropDes.setValue(DEFAULT, "Built-in Text");
        mCPropDes.setValue(NOT_OTHER, Boolean.TRUE);
        mCPropDes.setValue(TAGS, new String[]{"Built-in Text", "Built-in Image", "Built-in Audio", "Custom File"});
        
        PropertyDescriptor mCCPropDes = property("mm7MsgContentCust");
        mCCPropDes.setValue(NOT_UNDEFINED, Boolean.FALSE);
        mCCPropDes.setValue(DEFAULT, "");
        mCCPropDes.setValue(NOT_EXPRESSION, Boolean.TRUE);
        mCCPropDes.setPropertyEditorClass(FileEditor.class);
        
        PropertyDescriptor dOnPropDes = property("mm7DeliveryOn");
        dOnPropDes.setValue(NOT_UNDEFINED, Boolean.TRUE);
        dOnPropDes.setValue(DEFAULT, "Off");
        dOnPropDes.setValue(NOT_OTHER, Boolean.TRUE);
        dOnPropDes.setValue(TAGS, new String[]{"On", "Off"});
    }
}
